{{tag>sgbd mysql serveur réseau }}

----

====== MariaDB ======

**[[wpfr>MariaDB]]** est un système de gestion de base de données relationnelles. Après le rachat de [[wpfr>MySQL]] par Sun Microsystems, puis de Sun par Oracle Corporation, son fondateur (Michael Widenius) démissionne pour lancer une version alternative, sous licence GPL et 100% compatible avec [[:MySQL]].
MariaDB se base sur le code source de MySQL 5.1.

Il s'agit donc d'un fork plus communautaire et ouvert, et 100% compatible MySQL. Il s'avère aussi plus performant selon certaines études. Il est utilisé comme serveur MySQL par défaut sur [[wpfr>Debian]]. Sur Ubuntu cependant, c'est toujours [[:MySQL]] qui est proposé par défaut.

===== Installation =====

MariaDB est disponible dans les dépôts officiels.

Pour installer le serveur MariaDB : [[apt>mariadb-server]] ou

<code>sudo apt install mariadb-server</code>

==== PHP ====

Pour que [[:PHP]] dialogue avec le serveur MariaDB, il ne faut pas oublier d'installer le [[:php#association_avec_un_serveur_de_base_de_donnees|module correspondant]], qui reste [[apt>php-mysql]].

===== Différences entre MariaDB et MySQL =====

<note important>L'ensemble du comportement du serveur MariaDB reste très similaire à celui de MySQL. La commande ''mysql'' reste valable, ainsi que les commandes ''systemctl ... myslq''.

Pour l'essentiel vous pouvez donc suivre la [[:mysql|documentation de MySQL]]. On trouve cependant quelques différences auxquelles il faudra éventuellement faire attention.</note>

==== auth_socket s'appelle unix_socket sous MariaDB ====

<code mysql>MariaDB [(none)]> SELECT user, host, plugin, password FROM mysql.user;
+------+-----------+-------------+----------+
| user | host      | plugin      | password |
+------+-----------+-------------+----------+
| root | localhost | unix_socket |          |
+------+-----------+-------------+----------+
</code>

Donc si vous entendez parler de l'un ou de l'autre de ces plugins, il s'agit du même comportement (qui permet d'utiliser le système d'authentification des utilisateurs Ubuntu, plutôt que des couples identifiants / mots de passe spécifique à MySQL).

Quelques commandes sont à adapter dans la section //[[mysql#utilisateurs]]//.

==== unix_socket par défaut pour root dès Xenial ====

//[[:mysql#authentification|unix_socket]]// est utilisé par défaut pour le compte //root// dès [[:xenial|Ubuntu 16.04 Xenial]].

Donc en ce qui concerne l'authentification, en particulier celle de l'utilisateur //root//, et l'accès à la commande ''mysql'' en "super-administrateur", suivez la documentation de MySQL concernant [[:Bionic]] plutôt que [[:Xenial]] si vous utilisez MariaDB même sur Xenial.

==== password plutôt que authentication_string sur la table users ====

Dans la table //users// de la base de données //mysql//, où sont stockés les utilisateurs MySQL, les mots de passes sont renseignés dans le champs //password// sur MariaDB, au lieu de //authentication_string// sur MySQL.

Cela n'a pas un gros impact, et les commandes pour gérer les utilisateurs restent globalement les mêmes, mais pour [[:mysql#lister_les_utilisateurs|lister les utilisateurs existants]] en affichant leurs méthodes d'authentification on utilisera plutôt :
<code mysql>SELECT user, host, plugin, password FROM mysql.user;</code>

==== UTF-8 par défaut partout ====

MariaDB opte pour l'[[wpfr>UTF-8]] par défaut pour l'ensemble des opérations (y compris la création de base de données). Il est donc inutile de prendre [[:mysql#configuration_en_utf-8|cette section]] en compte, et le comportement général du serveur de base de données s'en trouve mieux harmonisé.

===== Liens =====

  * [[http://mariadb.org/|MariaDB.org]] [en]
  * [[https://downloads.mariadb.org/mariadb/repositories/|Setting up MariaDB Repositories]] [en]
  * [[http://ourdelta.org/ubuntu|OurDelta]] [en]
  * [[https://launchpad.net/maria|MariaDB sur launchpad]] [en]
  * La page [[:mysql_outils|Outils MySQL]] -> Divers outils pour administrer les bases de données MySQL qui seront compatibles avec MariaDB
  * La page des [[:SGBD]]

----
//Contributeurs : [[:utilisateurs:time132|time132]], [[:utilisateurs/bcag2]], [[:utilisateurs:krodelabestiole]]//